Dora 的编程语言教程使用 TSX 开发游戏本页总览使用 TSX 开发游戏 欢迎来到 Dora SSR 游戏开发的世界!如果你是一个前端开发者,或者对 TypeScript 和 React 有一定了解,那么你会发现使用 TSX 编写游戏是一个令人兴奋且熟悉的体验。如果不了解也完全不用担心,本教程将带你从零开始,了解如何使用 Dora SSR 和 TSX 开发游戏,并介绍一些 TSX 的基础概念。 1. 什么是 TSX? 1.1 TSX 基础概念 TSX 是 TypeScript 与 JSX 的结合,它允许你在 TypeScript 中使用类似 HTML 的标签语法来构建界面和组件。这在 React 开发中非常常见,而在 Dora SSR 中,你可以使用 TSX 来定义游戏对象和场景。(注:JSX 是 JavaScript 的语法扩展,允许你在 JavaScript 中编写类似 XML 的代码。) 提示要在 Dora SSR 中使用 TSX,你需要注意在 Web IDE 中创建代码文件时,选择 TypeScript 语言以及 .tsx 扩展名。 TSX 标签和属性:在 TSX 中,你可以像在 HTML 中一样使用标签和属性。例如: <sprite file="Image/logo.png" scaleX={0.2} scaleY={0.2}/> <sprite> 是一个标签,表示游戏中的精灵(图像)。 file、scaleX、scaleY 是属性,用于设置精灵的文件路径和缩放比例。 TSX 函数组件:你可以创建函数组件,接受属性并返回 TSX 元素。这与 React 中的函数组件类似。 interface ItemProps { x?: number; y?: number; children?: any;}const Item = (props: ItemProps) => { return ( <node x={props.x} y={props.y}> {/* 子元素 */} {props.children} </node> );}; 2. 使用 TSX 编写游戏场景 2.1 创建简单的游戏对象 在 Dora SSR 中,你可以使用 TSX 标签来定义游戏对象。例如,创建一个精灵: <sprite file="Image/logo.png" scaleX={0.2} scaleY={0.2}/> 2.2 转换为渲染对象实例 要将上述 TSX 标签转换为可渲染的游戏对象,需要使用 toNode() 函数。这个函数接受一个 TSX 元素或元素数组,返回对应的游戏节点。 import { React, toNode } from 'DoraX';const node = toNode(<sprite file="Image/logo.png" scaleX={0.2} scaleY={0.2}/>); 这样,node 就是一个实例化的游戏场景节点对象。 3. 创建 TSX 函数组件 函数组件使你的代码更具可重用性和可读性。以下是如何在 Dora SSR 中创建一个简单的盒子组件。 import { React, toNode } from 'DoraX';interface BoxProps { x?: number; y?: number; color?: number;}const Box = (props: BoxProps) => { return ( <draw-node x={props.x ?? 0} y={props.y ?? 0}> <rect-shape width={100} height={100} fillColor={props.color || 0xffffffff}/> </draw-node> );}; 在上面的示例中,Box 是一个函数组件,接受 x、y 和 color 属性,返回一个带有矩形形状的绘制节点。 使用组件: const boxes = [ <Box x={0} y={0} color={0xffff0000}/>, <Box x={150} y={0} color={0xff00ff00}/>, <Box x={300} y={0} color={0xff0000ff}/>,];const scene = toNode(boxes); 在上面的示例中,我们创建了三个不同颜色的盒子,并将它们放在一个数组中,然后将数组传递给 toNode() 函数,实例化为游戏场景节点。 4. 使用 useRef 获取实例化对象